package com.ys.nms.module.business.dal.dataobject.vlans;

import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;

/**
 * vlans DO
 *
 * @author zzy
 */
@TableName("vlans")
@KeySequence("vlans_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class VlansDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer vlanId;

    /**
     * 设备ID
     */
    @TableField(value = "device_id")
    private Integer deviceId;

    /**
     * VLAN 的 ID（即 VLAN 号），取值范围通常是 1–4094。例如：100、200 等。这是 VLAN 的核心标识。
     */
    @TableField(value = "vlan_vlan")
    private Integer vlanVlan;

    /**
     * VLAN 的路由域（Routing Domain）或 VRF（Virtual Routing and Forwarding）标识，用于多租户或复杂网络环境中区分不同逻辑网络。
     */
    @TableField(value = "vlan_domain")
    private Integer vlanDomain;

    /**
     * VLAN 的名称（字符串标识），如 "Servers"、"Guest-WiFi"、"Management" 等，便于用户识别。
     */
    @TableField(value = "vlan_name")
    private String vlanName;

    /**
     * VLAN 的类型
     */
    @TableField(value = "vlan_type")
    private String vlanType;

    /**
     * 该 VLAN 的最大传输单元（MTU），单位为字节
     */
    @TableField(value = "vlan_mtu")
    private Integer vlanMtu;

    @TableField(exist = false)
    private String upString;

    @TableField(exist = false)
    private String downString;

}